home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / procssng / alv.sun / alv.lha / src / support.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-08  |  3.1 KB  |  174 lines

  1. #include "defs.h"
  2. #include <varargs.h>
  3.  
  4. xtern char *progname;
  5. xtern Pixfont *font;
  6.  
  7. /* VARARGS */
  8. oid
  9. rror(va_alist)
  10. a_dcl
  11. {
  12.     va_list ap;
  13.     char   *fmt;
  14.  
  15.     va_start(ap);
  16.     if (fmt = va_arg(ap, char *))
  17.         (void) fprintf(stderr, "%s: ", progname);
  18.     else
  19.         fmt = va_arg(ap, char *);
  20.  
  21.     (void) _doprnt(fmt, ap, stderr);
  22.     va_end(ap);
  23.  
  24.     (void) fprintf(stderr, "\n");
  25.  
  26.     exit(1);
  27. }
  28.  
  29. /* VARARGS */
  30. oid
  31. arning(va_alist)
  32. a_dcl
  33. {
  34.     va_list ap;
  35.     char   *fmt;
  36.  
  37.     va_start(ap);
  38.     if (fmt = va_arg(ap, char *))
  39.         (void) fprintf(stderr, "%s: ", progname);
  40.     else
  41.         fmt = va_arg(ap, char *);
  42.  
  43.     (void) _doprnt(fmt, ap, stderr);
  44.     va_end(ap);
  45.  
  46.     (void) fprintf(stderr, "\n");
  47.  
  48. }
  49.  
  50.  
  51. etup_font()
  52. {
  53.     Pixfont *pf_open();
  54.  
  55.     if ((font = pf_open(FONT)) == NULL)
  56.         error("Couldn't open %s", FONT);
  57.     if ((smallfont = pf_open(SMALL_FONT)) == NULL)
  58.         error("Couldn't open %s", SMALL_FONT);
  59. }
  60.  
  61.  
  62. alc_max(in)
  63.     Pixrect *in;
  64. {
  65.     register int i, j;
  66.     int     max_level, val;
  67.  
  68.     max_level = 0;
  69.     for (i = 0; i < in->pr_size.x; i++)
  70.         for (j = 0; j < in->pr_size.y; j++) {
  71.             val = pr_get(in, i, j);
  72.             max_level = MAX(max_level, val);
  73.         } return max_level;
  74. }
  75. arse_profile(argc, argv, envp)
  76.     int    *argc;
  77.     char  **argv;
  78.     char  **envp;
  79. {
  80.     int     i;
  81.     char    buf[BUFSIZ], buf1[BUFSIZ];
  82.     char   *start;
  83.     int     newargc;
  84.     char  **newargv;
  85.     char    baseprogname[BUFSIZ];
  86.     char   *home;
  87.     char   *profile;
  88.     char   *str;
  89.     char    array[100][100];
  90.     FILE   *fp, *fopen();
  91.     char   *getenv();
  92.  
  93.     if ((profile = getenv("ALV")) == NULL)
  94.         if ((home = getenv("HOME")) != NULL) {
  95.             sprintf(buf1, "%s/%s", home, PROFILE);
  96.             profile = buf1;
  97.         }
  98.     bitrestrict = FALSE;
  99.     verbose = FALSE;
  100.     mono_override = FALSE;
  101.  
  102.     if (strrchr(progname, '/') == NULL)
  103.         strcpy(baseprogname, progname);
  104.     else
  105.         strcpy(baseprogname, strrchr(progname, '/') + 1);
  106.  
  107.     /* initialise the getopt variables here */
  108.     f[0] = stdin;
  109.     f[1] = stdout;
  110.     mode[0] = strsave("r");
  111.     mode[1] = strsave("w");
  112.     errflag = 0;
  113.  
  114.     if ((fp = fopen(profile, "r")) == NULL)
  115.         return;
  116.  
  117.     while (fgets(buf, BUFSIZ, fp) != NULL) {
  118.         if (buf[0] == '#')
  119.             continue;
  120.  
  121.         buf[strlen(buf) - 1] = '\0';
  122.  
  123.         if (strcmp(buf, "bitrestrict") == 0 || strcmp(buf, "bit-restrict") == 0)
  124.             bitrestrict = TRUE;
  125.         else if (strcmp(buf, "verbose") == 0)
  126.             verbose = TRUE;
  127.         else if (strcmp(buf, "mono-override") == 0 || strcmp(buf, "mono-overwrite") == 0)
  128.             mono_override = TRUE;
  129.         else if (strncmp(buf, baseprogname, strlen(baseprogname)) == 0) {
  130.             strtok(buf, ":");
  131.             strcpy(array[0], argv[0]);
  132.             newargc = 1;
  133.             while ((str = strtok(NULL, " \t")) != NULL)
  134.                 strcpy(array[newargc++], str);
  135.  
  136.             for (i = 1; i < *argc; i++)
  137.                 strcpy(array[newargc++], argv[i]);
  138.  
  139.             *argc = newargc;
  140.             for (i = 0; i < *argc; i++) {
  141.                 argv[i] = (char *) malloc(sizeof (char) * strlen(array[i]) +1);
  142.                 strcpy(argv[i], array[i]);
  143.             }
  144.         }
  145.     }
  146.     fclose(fp);
  147. }
  148.  
  149. har   *
  150. toa(i)
  151. {
  152.     char   *a;
  153.  
  154.     if ((a = (char *) malloc(20 * sizeof (char))) == NULL)
  155.         error("malloc returned NULL");
  156.     sprintf(a, "%d", i);
  157.     return a;
  158. }
  159. runcate(val, high, low)
  160.     int     val, high, low;
  161. {
  162.     val = MIN(val, high);
  163.     val = MAX(val, 0);
  164.     return val;
  165. }
  166.  
  167. etup_greylevelmap()
  168. {
  169.     int i;
  170.  
  171.     for(i=0;i<256;i++) 
  172.         greylevelmap[i] = (unsigned char) i;
  173. }
  174.